package com.crrc.dataparse.controller;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.crrc.dataparse.entity.ErrorResult;
import com.crrc.dataparse.entity.RequestEntiry;
import com.crrc.dataparse.service.DataDecode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author xx
 * @since 2025-08-18 13:24:42
 */
@RestController
@RequestMapping("/parse")
@Slf4j
public class ParseController {
    @Autowired
    DataDecode dataDecode;

    /**
     * <p>
     *  单频率数据解析接口
     * </p>
     */
    @PostMapping("/sf")
    public Object parsedData_sf(@RequestBody RequestEntiry input){
        try {
            JSONObject json_list = dataDecode.calc_sf(input.getRawData());
            return json_list;
        } catch (Exception e) {
            e.printStackTrace();
            return ErrorResult.fail("接口调用失败： \n" + e.getMessage());
        }
    }
    /**
     * <p>
     *  多频率数据解析接口
     * </p>
     */
    @PostMapping("/mf")
    public Object parsedData_mf(@RequestBody RequestEntiry input){
        try {
            JSONObject json_list = dataDecode.calc_mf(input.getRawData());
            return json_list;
        } catch (Exception e) {
            e.printStackTrace();
            return ErrorResult.fail("接口调用失败： \n" + e.getMessage());
        }
    }
    /**
     * <p>
     *  单频率多包数据解析接口
     * </p>
     */
    @PostMapping("/sf/mp")
    public Object parsedData_sf_mp(@RequestBody RequestEntiry input){
        try {
            JSONArray json_list = dataDecode.calc_sf_mp(input.getRawData());
            return json_list;
        } catch (Exception e) {
            e.printStackTrace();
            return ErrorResult.fail("接口调用失败： \n" + e.getMessage());
        }
    }
    /**
     * <p>
     *  多频率多包数据解析接口
     * </p>
     */
    @PostMapping("/mf/mp")
    public Object parsedData_mf_mp(@RequestBody RequestEntiry input){
        try {
            JSONArray json_list = dataDecode.calc_mf_mp(input.getRawData());
            return json_list;
        } catch (Exception e) {
            e.printStackTrace();
            return ErrorResult.fail("接口调用失败： \n" + e.getMessage());
        }
    }

}
